/**
 * H5公共工具函数
 */

// 处理登录超时
function handleLoginTimeout() {
    // 清除本地存储的用户信息
    localStorage.removeItem('currentUser');
    
    // 显示提示信息
    if (confirm('登录已过期，是否重新登录？')) {
        // 跳转到登录页面
        window.location.href = 'index.html';
    }
}

// 统一的API错误处理
function handleApiError(result, defaultErrorMessage = '操作失败') {
    if (result.message && (result.message.includes('登录') || result.message.includes('未登录') || result.message.includes('过期'))) {
        handleLoginTimeout();
        return true; // 表示已处理登录超时
    }
    return false; // 表示不是登录超时错误
}

// 统一的fetch封装，自动处理登录超时
async function apiRequest(url, options = {}) {
    try {
        const response = await fetch(url, {
            credentials: 'same-origin', // 确保携带cookie/session
            ...options
        });
        
        const result = await response.json();
        
        // 自动处理登录超时
        if (!result.success && handleApiError(result)) {
            return null; // 登录超时，返回null
        }
        
        return result;
    } catch (error) {
        console.error('API请求失败:', error);
        throw error;
    }
}

// 获取当前用户信息
function getCurrentUser() {
    const userData = localStorage.getItem('currentUser');
    try {
        return userData ? JSON.parse(userData) : null;
    } catch (e) {
        console.error('解析用户数据失败:', e);
        localStorage.removeItem('currentUser');
        return null;
    }
}

// 检查用户登录状态
function checkLoginStatus() {
    const user = getCurrentUser();
    if (!user) {
        handleLoginTimeout();
        return false;
    }
    return true;
}

// 显示加载状态
function showLoading(elementId = 'loading') {
    const loadingElement = document.getElementById(elementId);
    if (loadingElement) {
        loadingElement.style.display = 'block';
    }
}

// 隐藏加载状态
function hideLoading(elementId = 'loading') {
    const loadingElement = document.getElementById(elementId);
    if (loadingElement) {
        loadingElement.style.display = 'none';
    }
}

// 显示错误信息
function showError(message, elementId = 'error') {
    hideLoading();
    const errorElement = document.getElementById(elementId);
    if (errorElement) {
        errorElement.style.display = 'block';
        errorElement.textContent = message;
        
        // 5秒后自动隐藏错误信息
        setTimeout(() => {
            errorElement.style.display = 'none';
        }, 5000);
    } else {
        alert(message);
    }
}

// 显示成功信息
function showSuccess(message) {
    const successDiv = document.createElement('div');
    successDiv.style.cssText = `
        position: fixed;
        top: 20px;
        left: 50%;
        transform: translateX(-50%);
        background: #4CAF50;
        color: white;
        padding: 12px 24px;
        border-radius: 6px;
        z-index: 1000;
        font-size: 14px;
        box-shadow: 0 2px 10px rgba(0,0,0,0.2);
    `;
    successDiv.textContent = message;
    document.body.appendChild(successDiv);
    
    // 3秒后自动移除
    setTimeout(() => {
        if (successDiv.parentNode) {
            successDiv.parentNode.removeChild(successDiv);
        }
    }, 3000);
}

// 返回上一页
function goBack() {
    if (window.history.length > 1) {
        window.history.back();
    } else {
        window.location.href = 'index.html';
    }
}

// 页面初始化检查
document.addEventListener('DOMContentLoaded', function() {
    // 为所有需要登录的页面添加登录状态检查
    const needLoginPages = ['dept-list.html', 'teacher-list.html', 'dept-evaluated.html', 'teacher-evaluated.html'];
    const currentPage = window.location.pathname.split('/').pop();
    
    if (needLoginPages.includes(currentPage)) {
        if (!checkLoginStatus()) {
            return; // 如果未登录，会自动跳转
        }
    }
}); 